package space.panker916.utils;

import org.springframework.stereotype.Component;
import space.panker916.pojo.User;


// 持有用户信息，用来代替 session 对象的（ session 对象也是线程隔离的，但是在分布式的环境下，session 存在共享数据的问题）
// 详情可见：https://www.cnblogs.com/study-everyday/p/7853145.html 
@Component
public class HostHolder {
    private ThreadLocal<User> userThreadLocal = new ThreadLocal<>();

    public void setUser(User user) {
        userThreadLocal.set(user);
    }

    public User getUser() {
        return userThreadLocal.get();
    }

    public void clear() {
        userThreadLocal.remove();
    }
}
